Page({
  data: {
    demandList: [], // 需求单列表
    page: 1, // 当前页数
    pageSize: 10, // 每页展示的数据数
    isLoading: false, // 加载状态
    isNoMoreData: false, // 是否没有更多数据
    scrollTop: 0, // 滚动位置
    userId: null, // 用户ID
  },

  onLoad() {
    // 从缓存中获取用户ID
		const userDetails = wx.getStorageSync('userDetails');
    if (userDetails && userDetails.id) {
      this.setData({ userId: userDetails.id });
      this.loadDemandList(); // 加载需求单列表
    } else {
      wx.showToast({
        title: '用户信息获取失败',
        icon: 'none',
      });
    }
  },

  // 加载需求单列表
  loadDemandList(callback) {
    if (this.data.isLoading || this.data.isNoMoreData) {
      return; // 如果正在加载或没有更多数据，直接返回
    }
    this.setData({ isLoading: true }); // 设置加载状态为 true

    const { page, pageSize, userId } = this.data;
    wx.request({
      url: 'http://localhost:8080/user/demand/page',
      method: 'GET',
      data: {
        page,
        pageSize,
        userId, // 根据用户ID查询
      },
      success: (res) => {
        const { total, records } = res.data.data;
        const processedRecords = records.map(item => {
          const urlList = item.urlList ? item.urlList.split(',') : [];
          return {
            ...item,
            tags: item.tags ? item.tags.split(',') : [],
            UrlList: urlList,
          };
        });

        this.setData({
          demandList: page === 1 ? processedRecords : this.data.demandList.concat(processedRecords),
          isNoMoreData: processedRecords.length < pageSize,
        });

        if (typeof callback === 'function') {
          callback();
        }
      },
      fail: () => {
        wx.showToast({
          title: '加载失败，请重试',
          icon: 'none',
        });
      },
      complete: () => {
        this.setData({ isLoading: false });
      },
    });
  },

  // 上拉触底事件
  onReachBottom() {
    if (this.data.isNoMoreData) {
      wx.showToast({
        title: '没有更多数据了',
        icon: 'none',
      });
      return;
    }
    this.setData({ page: this.data.page + 1 });
    this.loadDemandList();
  },

  // 下拉刷新事件
  onPullDownRefresh() {
    this.setData({
      page: 1,
      isNoMoreData: false,
    });
    this.loadDemandList(() => {
      wx.stopPullDownRefresh(); // 停止下拉刷新动画
    });
  },

  // 跳转到详情页
  navigateToDetail(event) {
    const id = event.currentTarget.dataset.id; // 获取需求单ID
    wx.navigateTo({
      url: `/demand/pages/demand_detail/demand_detail?demandId=${id}`,
    });
  },
});
